package com.gragra.binaryParsing;
/**
 * 
 */
import com.gragra.sampling.binary.ConstSpanConverterFactory;
import com.gragra.sampling.binary.GeneratorForBinaryExtendedGibbs;
import com.gragra.sampling.binary.GeneratorForBinaryGibbs;
import com.gragra.sampling.binary.GeneratorForBinaryInside;
import com.gragra.sampling.binary.GeneratorForBinaryPop;
import com.gragra.sampling.binary.MakeCorpus;
/**
 * 
 * @author Christoph Teichmann
 * 23.09.2013
 */
public enum StructureType
{
	BinaryGibbs
	{
		@Override
		public MakeCorpus makeBaseCreator()
		{return new GeneratorForBinaryGibbs(false, new ConstSpanConverterFactory());}
	},
	BinaryExtendedGibbs
	{
		@Override
		public MakeCorpus makeBaseCreator()
		{return new GeneratorForBinaryExtendedGibbs(false, new ConstSpanConverterFactory());}
	},
	BinaryPop
	{

		@Override
		public MakeCorpus makeBaseCreator()
		{return new GeneratorForBinaryPop(false, new ConstSpanConverterFactory());}
	},
	BinaryChart 
	{
		@Override
		public MakeCorpus makeBaseCreator()
		{return new GeneratorForBinaryInside(false, new ConstSpanConverterFactory());}
	};
	/**
	 * 
	 * @return
	 */
	public abstract MakeCorpus makeBaseCreator();
}